package com.example.clxy.service;

import com.example.clxy.entity.Schedule;
import com.example.clxy.entity.dto.ScheduleDto;
import com.example.clxy.entity.dto.Wrapper;
import com.example.clxy.result.PageResult;
import com.example.clxy.result.WebRestResult;
import com.example.clxy.result.business.PageResult.SchedulePageResult;
import com.example.clxy.result.business.PageResult.ScheduleRemindResult;
import com.example.clxy.result.business.PageResult.SemesterPageResult;
import com.example.clxy.result.business.ScheduleResult;
import com.example.clxy.result.business.ScheduleSafetynoticeResult;
import com.example.clxy.result.business.ScheduleSemesterResult;

import java.util.List;

/**
 * @Author liuhaoqi
 * @Date 2020/8/5 12:26
 * @Version 1.0
 */
public interface ScheduleService {
    WebRestResult addScheduleByDataList(Wrapper<Schedule> scheduleWrapper);

    WebRestResult deleteSchedule(String scheduleid);

    WebRestResult updateSchedule(Schedule schedule);

    PageResult<SchedulePageResult> getScheduleListByUser(String userid, String semesterid,String platformid, String experimentname, String wlclassid, String wlclassname, String grade, int page, int pagesize,String status);

    PageResult<List<SchedulePageResult>> getScheduleListByWeekUser(String userid, String weekdate);

    ScheduleResult getScheduleByid(String scheduleid);

    WebRestResult addSchedule(ScheduleDto scheduleDto);

    PageResult<SchedulePageResult> getSemesterListHaveSchedule(int page,int pagesize,String semestername);

    PageResult<SemesterPageResult> getSemesterNoProgramList();

    WebRestResult addSemesterProgram(Schedule schedule);

    WebRestResult deleteSemesterProgram(String semesterid, String programid);

    WebRestResult updateSemesterProgram(String semesterid, String programid);

    PageResult<SchedulePageResult>  getSemesterProgram(int page, int pagesize, String semestername, String programname);

    ScheduleSemesterResult getAllSchedulebySemester(String userid, String semesterid);

    PageResult<ScheduleRemindResult> getScheduleRemindByUser(String userid);

    ScheduleSafetynoticeResult getSafetynoticeByScheduleid(String scheduleid);
}
